package utils;

import java.io.InputStream;
import java.util.Properties;

/**
 * 单例模式读取配置文件(懒汉，饿汉)
 */
public class ConfigManager {
    private static Properties properties;

    // 懒汉模式
//    private static ConfigManager instance=null;

    // 饿汉模式
    private static ConfigManager instance=new ConfigManager();

    // 杜绝了外界创建该类对象，私有构造方法。
    private ConfigManager(){
        String configFile = "config.properties";
        properties=new Properties();
        InputStream is=ConfigManager.class.getClassLoader().getResourceAsStream(configFile);
        try {
            properties.load(is);
            if (is != null) {
                is.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 对外提供的获取ConfigManager实例的方法（懒汉模式）
     * @return
     */
//    public static synchronized ConfigManager getInstance(){
//
//        if(instance==null){
//            instance=new ConfigManager();
//        }
//        return instance;
//    }

    /**
     * 对外提供的获取ConfigManager实例的方法（饿汉模式）
     * @return
     */
    public static synchronized ConfigManager getInstance(){
        return instance;
    }


    /**
     * 获取配置文件中的属性值
     * @param key
     * @return
     */
    public String getProperty(String key) {
        return properties.getProperty(key);
    }
}
